\begin{problem}{LCA Problem Revisited}{lca\_rmq.in}{lca\_rmq.out}{4 секунды}{64 мегабайта}{*Z}

Задано подвешенное дерево, содержащее $n$ ($1 \le n \le 100\;000$)
вершин, пронумерованных от 0 до $n - 1$. 
Требуется ответить на $m$ ($1 \le m \le 10\,000\,000$) запросов
о наименьшем общем предке для пары вершин.

Запросы генерируются следующим образом. Заданы числа
$a_1, a_2$ и числа $x$, $y$ и $z$. 
Числа $a_3, \ldots, a_{2m}$ генерируются
следующим образом: $a_i = (x\cdot a_{i-2}+y \cdot a_{i - 1} + z) \bmod n$.
Первый запрос имеет вид $\langle a_1, a_2\rangle$. Если ответ на $i-1$-й запрос
равен $v$, то $i$-й запрос имеет вид 
$\langle (a_{2i-1} + v) \bmod n, a_{2i}\rangle$.

\InputFile

Первая строка содержит два числа: $n$ и $m$. Корень дерева
имеет номер 0. Вторая строка содержит $n - 1$ целых чисел, $i$-е из этих
чисел равно номеру родителя вершины $i$.
Третья строка содержит два целых числа в диапазоне от 0 до $n - 1$: $a_1$ и $a_2$.
Четвертая строка содержит три целых числа: $x$, $y$ и $z$, эти числа неотрицательны
и не превосходят $10^9$.

\OutputFile

Выведите в выходной файл сумму номеров вершин --- ответов на все запросы.

\Examples

\begin{example}
\exmp{
3 2
0 1
2 1
1 1 0
}{
2
}%
\end{example}

\end{problem}
